<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.14"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>PxSimulationFilterCallback Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
  $(document).ready(initResizable);
/* @license-end */</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectlogo"><img alt="Logo" src="PhysXLogoBlack.png"/></td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.14 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
  initMenu('',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('classPxSimulationFilterCallback.html','');});
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="header">
  <div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pro-methods">Protected Member Functions</a> &#124;
<a href="classPxSimulationFilterCallback-members.html">List of all members</a>  </div>
  <div class="headertitle">
<div class="title">PxSimulationFilterCallback Class Reference<span class="mlabels"><span class="mlabel">abstract</span></span><div class="ingroups"><a class="el" href="group__physics.html">Physics</a></div></div>  </div>
</div><!--header-->
<div class="contents">

<p>Filter callback to specify handling of collision pairs.  
 <a href="classPxSimulationFilterCallback.html#details">More...</a></p>

<p><code>#include &lt;<a class="el" href="PxFiltering_8h_source.html">PxFiltering.h</a>&gt;</code></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:aa434e6ecd4e0cfa7bede6c9ad10d319e"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="group__physics.html#ga675117fb97324a28d3b982b47430ea02">PxFilterFlags</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPxSimulationFilterCallback.html#aa434e6ecd4e0cfa7bede6c9ad10d319e">pairFound</a> (<a class="el" href="group__foundation.html#gacce5749db3dcfb916e98c253374264ed">PxU32</a> pairID, <a class="el" href="group__physics.html#ga7b0c5783657e45e3fd752adfe3c1d069">PxFilterObjectAttributes</a> attributes0, <a class="el" href="structPxFilterData.html">PxFilterData</a> filterData0, const <a class="el" href="classPxActor.html">PxActor</a> *a0, const <a class="el" href="classPxShape.html">PxShape</a> *s0, <a class="el" href="group__physics.html#ga7b0c5783657e45e3fd752adfe3c1d069">PxFilterObjectAttributes</a> attributes1, <a class="el" href="structPxFilterData.html">PxFilterData</a> filterData1, const <a class="el" href="classPxActor.html">PxActor</a> *a1, const <a class="el" href="classPxShape.html">PxShape</a> *s1, <a class="el" href="group__physics.html#gacacbeccf757e60dbf45089ef382681d9">PxPairFlags</a> &amp;pairFlags)=0</td></tr>
<tr class="memdesc:aa434e6ecd4e0cfa7bede6c9ad10d319e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Filter method to specify how a pair of potentially colliding objects should be processed.  <a href="#aa434e6ecd4e0cfa7bede6c9ad10d319e">More...</a><br /></td></tr>
<tr class="separator:aa434e6ecd4e0cfa7bede6c9ad10d319e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ada6fcf31c0678d3852f926f545884b3e"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPxSimulationFilterCallback.html#ada6fcf31c0678d3852f926f545884b3e">pairLost</a> (<a class="el" href="group__foundation.html#gacce5749db3dcfb916e98c253374264ed">PxU32</a> pairID, <a class="el" href="group__physics.html#ga7b0c5783657e45e3fd752adfe3c1d069">PxFilterObjectAttributes</a> attributes0, <a class="el" href="structPxFilterData.html">PxFilterData</a> filterData0, <a class="el" href="group__physics.html#ga7b0c5783657e45e3fd752adfe3c1d069">PxFilterObjectAttributes</a> attributes1, <a class="el" href="structPxFilterData.html">PxFilterData</a> filterData1, bool objectRemoved)=0</td></tr>
<tr class="memdesc:ada6fcf31c0678d3852f926f545884b3e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Callback to inform that a tracked collision pair is gone.  <a href="#ada6fcf31c0678d3852f926f545884b3e">More...</a><br /></td></tr>
<tr class="separator:ada6fcf31c0678d3852f926f545884b3e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0ba6a20106fd9ef3eca10099be8017da"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPxSimulationFilterCallback.html#a0ba6a20106fd9ef3eca10099be8017da">statusChange</a> (<a class="el" href="group__foundation.html#gacce5749db3dcfb916e98c253374264ed">PxU32</a> &amp;pairID, <a class="el" href="group__physics.html#gacacbeccf757e60dbf45089ef382681d9">PxPairFlags</a> &amp;pairFlags, <a class="el" href="group__physics.html#ga675117fb97324a28d3b982b47430ea02">PxFilterFlags</a> &amp;filterFlags)=0</td></tr>
<tr class="memdesc:a0ba6a20106fd9ef3eca10099be8017da"><td class="mdescLeft">&#160;</td><td class="mdescRight">Callback to give the opportunity to change the filter state of a tracked collision pair.  <a href="#a0ba6a20106fd9ef3eca10099be8017da">More...</a><br /></td></tr>
<tr class="separator:a0ba6a20106fd9ef3eca10099be8017da"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-methods"></a>
Protected Member Functions</h2></td></tr>
<tr class="memitem:a385041a8854edf7e7e2281fd56eb9b6b"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classPxSimulationFilterCallback.html#a385041a8854edf7e7e2281fd56eb9b6b">~PxSimulationFilterCallback</a> ()</td></tr>
<tr class="separator:a385041a8854edf7e7e2281fd56eb9b6b"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Filter callback to specify handling of collision pairs. </p>
<p>This class is provided to implement more complex and flexible collision pair filtering logic, for instance, taking the state of the user application into account. Filter callbacks also give the user the opportunity to track collision pairs and update their filter state.</p>
<p>You might want to check the documentation on <a class="el" href="group__physics.html#ga235380b2a5b3cc89a4cd89d089d72b33" title="Filter shader to specify handling of collision pairs. ">PxSimulationFilterShader</a> as well since it includes more general information on filtering.</p>
<dl class="section note"><dt>Note</dt><dd>SDK state should not be modified from within the callbacks. In particular objects should not be created or destroyed. If state modification is needed then the changes should be stored to a buffer and performed after the simulation step.</dd>
<dd>
The callbacks may execute in user threads or simulation threads, possibly simultaneously. The corresponding objects may have been deleted by the application earlier in the frame. It is the application's responsibility to prevent race conditions arising from using the SDK API in the callback while an application thread is making write calls to the scene, and to ensure that the callbacks are thread-safe. Return values which depend on when the callback is called during the frame will introduce nondeterminism into the simulation.</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="classPxSceneDesc.html#af7b94475075eb9b43ca32650cd169cc1" title="A custom collision filter callback which can be used to implement more complex filtering operations w...">PxSceneDesc.filterCallback</a> <a class="el" href="group__physics.html#ga235380b2a5b3cc89a4cd89d089d72b33" title="Filter shader to specify handling of collision pairs. ">PxSimulationFilterShader</a> </dd></dl>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="a385041a8854edf7e7e2281fd56eb9b6b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a385041a8854edf7e7e2281fd56eb9b6b">&#9670;&nbsp;</a></span>~PxSimulationFilterCallback()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual PxSimulationFilterCallback::~PxSimulationFilterCallback </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="aa434e6ecd4e0cfa7bede6c9ad10d319e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa434e6ecd4e0cfa7bede6c9ad10d319e">&#9670;&nbsp;</a></span>pairFound()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="group__physics.html#ga675117fb97324a28d3b982b47430ea02">PxFilterFlags</a> PxSimulationFilterCallback::pairFound </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__foundation.html#gacce5749db3dcfb916e98c253374264ed">PxU32</a>&#160;</td>
          <td class="paramname"><em>pairID</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__physics.html#ga7b0c5783657e45e3fd752adfe3c1d069">PxFilterObjectAttributes</a>&#160;</td>
          <td class="paramname"><em>attributes0</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structPxFilterData.html">PxFilterData</a>&#160;</td>
          <td class="paramname"><em>filterData0</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classPxActor.html">PxActor</a> *&#160;</td>
          <td class="paramname"><em>a0</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classPxShape.html">PxShape</a> *&#160;</td>
          <td class="paramname"><em>s0</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__physics.html#ga7b0c5783657e45e3fd752adfe3c1d069">PxFilterObjectAttributes</a>&#160;</td>
          <td class="paramname"><em>attributes1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structPxFilterData.html">PxFilterData</a>&#160;</td>
          <td class="paramname"><em>filterData1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classPxActor.html">PxActor</a> *&#160;</td>
          <td class="paramname"><em>a1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classPxShape.html">PxShape</a> *&#160;</td>
          <td class="paramname"><em>s1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__physics.html#gacacbeccf757e60dbf45089ef382681d9">PxPairFlags</a> &amp;&#160;</td>
          <td class="paramname"><em>pairFlags</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Filter method to specify how a pair of potentially colliding objects should be processed. </p>
<p>This method gets called when the filter flags returned by the filter shader (see <a class="el" href="group__physics.html#ga235380b2a5b3cc89a4cd89d089d72b33" title="Filter shader to specify handling of collision pairs. ">PxSimulationFilterShader</a>) indicate that the filter callback should be invoked (<a class="el" href="structPxFilterFlag.html#a8de424e04d86b5772436423b0dc58083a62c42e8178d44dc0ead47699f9df87b8" title="Invoke the filter callback (PxSimulationFilterCallback::pairFound()) for this collision pair...">PxFilterFlag::eCALLBACK</a> or <a class="el" href="structPxFilterFlag.html#a8de424e04d86b5772436423b0dc58083afbb0680c3ea5447f44fc90560bd7dd8f" title="Track this collision pair with the filter callback mechanism. ">PxFilterFlag::eNOTIFY</a> set). Return the <a class="el" href="structPxFilterFlag.html" title="Collection of flags describing the filter actions to take for a collision pair. ">PxFilterFlag</a> flags and set the <a class="el" href="structPxPairFlag.html" title="Collection of flags describing the actions to take for a collision pair. ">PxPairFlag</a> flags to define what the simulation should do with the given collision pair.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">pairID</td><td>Unique ID of the collision pair used to issue filter status changes for the pair (see <a class="el" href="classPxSimulationFilterCallback.html#a0ba6a20106fd9ef3eca10099be8017da" title="Callback to give the opportunity to change the filter state of a tracked collision pair...">statusChange()</a>) </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">attributes0</td><td>The filter attribute of the first object </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">filterData0</td><td>The custom filter data of the first object </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">a0</td><td>Actor pointer of the first object </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">s0</td><td>Shape pointer of the first object (NULL if the object has no shapes) </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">attributes1</td><td>The filter attribute of the second object </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">filterData1</td><td>The custom filter data of the second object </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">a1</td><td>Actor pointer of the second object </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">s1</td><td>Shape pointer of the second object (NULL if the object has no shapes) </td></tr>
    <tr><td class="paramdir">[in,out]</td><td class="paramname">pairFlags</td><td>In: Pair flags returned by the filter shader. Out: Additional information on how an accepted pair should get processed </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Filter flags defining whether the pair should be discarded, temporarily ignored or processed and whether the pair should be tracked and send a report on pair deletion through the filter callback</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="group__physics.html#ga235380b2a5b3cc89a4cd89d089d72b33" title="Filter shader to specify handling of collision pairs. ">PxSimulationFilterShader</a> <a class="el" href="structPxFilterData.html" title="PxFilterData is user-definable data which gets passed into the collision filtering shader and/or call...">PxFilterData</a> <a class="el" href="group__physics.html#ga7b0c5783657e45e3fd752adfe3c1d069" title="Structure which gets passed into the collision filtering shader and/or callback providing additional ...">PxFilterObjectAttributes</a> <a class="el" href="structPxFilterFlag.html" title="Collection of flags describing the filter actions to take for a collision pair. ">PxFilterFlag</a> <a class="el" href="structPxPairFlag.html" title="Collection of flags describing the actions to take for a collision pair. ">PxPairFlag</a> </dd></dl>

</div>
</div>
<a id="ada6fcf31c0678d3852f926f545884b3e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ada6fcf31c0678d3852f926f545884b3e">&#9670;&nbsp;</a></span>pairLost()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual void PxSimulationFilterCallback::pairLost </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__foundation.html#gacce5749db3dcfb916e98c253374264ed">PxU32</a>&#160;</td>
          <td class="paramname"><em>pairID</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__physics.html#ga7b0c5783657e45e3fd752adfe3c1d069">PxFilterObjectAttributes</a>&#160;</td>
          <td class="paramname"><em>attributes0</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structPxFilterData.html">PxFilterData</a>&#160;</td>
          <td class="paramname"><em>filterData0</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__physics.html#ga7b0c5783657e45e3fd752adfe3c1d069">PxFilterObjectAttributes</a>&#160;</td>
          <td class="paramname"><em>attributes1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structPxFilterData.html">PxFilterData</a>&#160;</td>
          <td class="paramname"><em>filterData1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>objectRemoved</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Callback to inform that a tracked collision pair is gone. </p>
<p>This method gets called when a collision pair disappears or gets re-filtered. Only applies to collision pairs which have been marked as filter callback pairs (<a class="el" href="structPxFilterFlag.html#a8de424e04d86b5772436423b0dc58083afbb0680c3ea5447f44fc90560bd7dd8f" title="Track this collision pair with the filter callback mechanism. ">PxFilterFlag::eNOTIFY</a> set in <a class="el" href="classPxSimulationFilterCallback.html#aa434e6ecd4e0cfa7bede6c9ad10d319e" title="Filter method to specify how a pair of potentially colliding objects should be processed. ">pairFound()</a>).</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">pairID</td><td>Unique ID of the collision pair that disappeared </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">attributes0</td><td>The filter attribute of the first object </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">filterData0</td><td>The custom filter data of the first object </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">attributes1</td><td>The filter attribute of the second object </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">filterData1</td><td>The custom filter data of the second object </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">objectRemoved</td><td>True if the pair was lost because one of the objects got removed from the scene</td></tr>
  </table>
  </dd>
</dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="classPxSimulationFilterCallback.html#aa434e6ecd4e0cfa7bede6c9ad10d319e" title="Filter method to specify how a pair of potentially colliding objects should be processed. ">pairFound()</a> <a class="el" href="group__physics.html#ga235380b2a5b3cc89a4cd89d089d72b33" title="Filter shader to specify handling of collision pairs. ">PxSimulationFilterShader</a> <a class="el" href="structPxFilterData.html" title="PxFilterData is user-definable data which gets passed into the collision filtering shader and/or call...">PxFilterData</a> <a class="el" href="group__physics.html#ga7b0c5783657e45e3fd752adfe3c1d069" title="Structure which gets passed into the collision filtering shader and/or callback providing additional ...">PxFilterObjectAttributes</a> </dd></dl>

</div>
</div>
<a id="a0ba6a20106fd9ef3eca10099be8017da"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0ba6a20106fd9ef3eca10099be8017da">&#9670;&nbsp;</a></span>statusChange()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual bool PxSimulationFilterCallback::statusChange </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__foundation.html#gacce5749db3dcfb916e98c253374264ed">PxU32</a> &amp;&#160;</td>
          <td class="paramname"><em>pairID</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__physics.html#gacacbeccf757e60dbf45089ef382681d9">PxPairFlags</a> &amp;&#160;</td>
          <td class="paramname"><em>pairFlags</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__physics.html#ga675117fb97324a28d3b982b47430ea02">PxFilterFlags</a> &amp;&#160;</td>
          <td class="paramname"><em>filterFlags</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Callback to give the opportunity to change the filter state of a tracked collision pair. </p>
<p>This method gets called once per simulation step to let the application change the filter and pair flags of a collision pair that has been reported in <a class="el" href="classPxSimulationFilterCallback.html#aa434e6ecd4e0cfa7bede6c9ad10d319e" title="Filter method to specify how a pair of potentially colliding objects should be processed. ">pairFound()</a> and requested callbacks by setting <a class="el" href="structPxFilterFlag.html#a8de424e04d86b5772436423b0dc58083afbb0680c3ea5447f44fc90560bd7dd8f" title="Track this collision pair with the filter callback mechanism. ">PxFilterFlag::eNOTIFY</a>. To request a change of filter status, the target pair has to be specified by its ID, the new filter and pair flags have to be provided and the method should return true.</p>
<dl class="section note"><dt>Note</dt><dd>If this method changes the filter status of a collision pair and the pair should keep being tracked by the filter callbacks then <a class="el" href="structPxFilterFlag.html#a8de424e04d86b5772436423b0dc58083afbb0680c3ea5447f44fc90560bd7dd8f" title="Track this collision pair with the filter callback mechanism. ">PxFilterFlag::eNOTIFY</a> has to be set.</dd>
<dd>
The application is responsible to ensure that this method does not get called for pairs that have been reported as lost, see <a class="el" href="classPxSimulationFilterCallback.html#ada6fcf31c0678d3852f926f545884b3e" title="Callback to inform that a tracked collision pair is gone. ">pairLost()</a>.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[out]</td><td class="paramname">pairID</td><td>ID of the collision pair for which the filter status should be changed </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">pairFlags</td><td>The new pairFlags to apply to the collision pair </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">filterFlags</td><td>The new filterFlags to apply to the collision pair </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>True if the changes should be applied. In this case the method will get called again. False if no more status changes should be done in the current simulation step. In that case the provided flags will be discarded.</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="classPxSimulationFilterCallback.html#aa434e6ecd4e0cfa7bede6c9ad10d319e" title="Filter method to specify how a pair of potentially colliding objects should be processed. ">pairFound()</a> <a class="el" href="classPxSimulationFilterCallback.html#ada6fcf31c0678d3852f926f545884b3e" title="Callback to inform that a tracked collision pair is gone. ">pairLost()</a> <a class="el" href="structPxFilterFlag.html" title="Collection of flags describing the filter actions to take for a collision pair. ">PxFilterFlag</a> <a class="el" href="structPxPairFlag.html" title="Collection of flags describing the actions to take for a collision pair. ">PxPairFlag</a> </dd></dl>

</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li><a class="el" href="PxFiltering_8h_source.html">PxFiltering.h</a></li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- HTML footer for doxygen 1.8.14-->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="navelem"><a class="el" href="classPxSimulationFilterCallback.html">PxSimulationFilterCallback</a></li>
    <li class="footer">Copyright &copy; 2008-2021 NVIDIA Corporation, 2788 San Tomas Expressway, Santa Clara, CA 95051 U.S.A. All rights reserved. <a href="http://www.nvidia.com ">www.nvidia.com</a></li>
  </ul>
</div>
</body>
</html>
